//Given the API rand7() that generates a uniform random integer in the range [1,
// 7], write a function rand10() that generates a uniform random integer in the 
//range [1, 10]. You can only call the API rand7(), and you shouldn't call any 
//other API. Please do not use a language's built-in random API. 
//
// Each test case will have one internal argument n, the number of times that 
//your implemented function rand10() will be called while testing. Note that this 
//is not an argument passed to rand10(). 
//
// 
// Example 1: 
// Input: n = 1
//Output: [2]
// 
// Example 2: 
// Input: n = 2
//Output: [2,8]
// 
// Example 3: 
// Input: n = 3
//Output: [3,8,10]
// 
// 
// Constraints: 
//
// 
// 1 <= n <= 10⁵ 
// 
//
// 
// Follow up: 
//
// 
// What is the expected value for the number of calls to rand7() function? 
// Could you minimize the number of calls to rand7()? 
// 
//
// Related Topics 数学 拒绝采样 概率与统计 随机化 👍 450 👎 0

package leetcode.editor.cn;

class P470ImplementRand10UsingRand7 {
    //2023-05-17 22:43:10
    //Implement Rand10() Using Rand7()
    //编号：[470]

    public static char getRandomChar() {
        return (char) (0x4e00 + (int) (Math.random() * (0x9fa5 - 0x4e00 + 1)));
    }

    public static void main(String[] args) {

        System.out.println(getRandomChar());
    }
    //leetcode submit region begin(Prohibit modification and deletion)
//leetcode submit region end(Prohibit modification and deletion)

}